package co.com.inventarios.logica;


import java.util.Date;
import java.util.List;

import co.com.inventarios.modelo.Bodega;
import co.com.inventarios.modelo.Dlluser;
import co.com.inventarios.modelo.Label;
import co.com.inventarios.modelo.Mngtdc;
import co.com.inventarios.modelo.MngtdcId;
import co.com.inventarios.modelo.Producto;
import co.com.inventarios.modelo.RequiDoc;
import co.com.inventarios.modelo.RequiDocId;
import co.com.inventarios.modelo.RequiDocWork;
import co.com.inventarios.modelo.RequiPro;
import co.com.inventarios.modelo.RequiProId;
import co.com.inventarios.modelo.RequiProWork;
import co.com.inventarios.modelo.Tipoiva;
import co.com.inventarios.persistencia.ProductoDAO;
import co.com.inventarios.persistencia.QueryBodegaDAO;
import co.com.inventarios.persistencia.QueryRequisicionDAO;
import co.com.inventarios.persistencia.QueryTipoivaDAO;
import co.com.inventarios.persistencia.RequiProDAO;


public interface IRequisicionLogica {
	
	public void grabarRequiDoc(RequiDoc Registro) throws Exception;
	
	public RequiDoc consultarRequiDoc(String propiedad, RequiDocId valor)
	throws Exception;
	
	public RequiProWork[] findRequisicionRowPro(List<RequiPro> lista,String bodega)
	throws Exception ;
	
	public List<RequiDoc> consultarRequiDocProperty_Date(String bodegas,
			String clase, String tipo, String propiedad, Date valor)
			throws Exception;
	
	public String grabarRequiDoc_new(RequiDoc Registro) throws Exception ;
	
	public Bodega consultarBodega(String codigo,String autorizadas) throws Exception;
	
	//public Bodega consultarBodega(String codigo) throws Exception;
	public Bodega consultarBodegaActiva(String codigo,String valor) throws Exception ;
	
	public List<Bodega> consultarBodegaLike(String propiedad, String valor, String autorizadas)
	throws Exception;
	
	public List<RequiDoc> buscarTodosRequiDocAll_Estado(Long Estado) throws Exception ;
	
	public Dlluser consultarRequiUser(String usuario)
	throws Exception;
	
	public void actualiza_reqpro(RequiPro requiproact)
	throws Exception;
	
	public List<RequiDoc> buscarTodosRequiDoc_Estado(String bodegas,Long estado) throws Exception;
	
	public Producto consultarRequiProducto(String codigo)
	throws Exception;
	
	public Label consultarlabel(Long codigo)throws Exception;
	
	public List<Bodega> buscarBodegas_Aut(String buscar) throws Exception;
	
	public List<Mngtdc> buscarDocument_Aut(String buscar,String clase) throws Exception;
	
	public List<RequiDoc> buscarTodosRequiDoc(String bodegas) throws Exception;
	
	public List<RequiDoc> buscarTodosRequiDocAll() throws Exception;
	
	public List<RequiPro> buscarTodosRequiPro() throws Exception;
	
	public List<RequiDoc> consultarRequiDocPropertyCerradas(String clase, String tipo,
			String propiedad, String valor) throws Exception;
	
	public List<Producto> buscarTodosProductos() throws Exception;
	
	public List<RequiPro> buscarRequiProTra(String empresa, String clase,
			String tipo, String bodega1, String bodega2) throws Exception;
	
	public List<RequiPro> buscarRequiPro(String empresa, String clase , String tipo, String numero ) throws Exception;
	
	public Double buscarRequiProId(String empresa, String clase , String tipo, Double numero ) throws Exception;
	
	public Double MngDocnum_Id(String clase , String tipo) throws Exception;
	
	public List<RequiDoc> consultarPropiedadLike(String propiedad, String valor)
	throws Exception;
	
	public List<RequiDoc> consultarRequiDocProperty(String bodegas,String clase, String tipo,String propiedad,String valor)
	throws Exception;
	
	public List<RequiDoc> consultarRequiDocPropertydate(String clase, String tipo,String propiedad,Date valor)
	throws Exception;
	
	public void eliminarRequisicion(RequiDocId Req) throws Exception;
	
	public void eliminarProRequisicion(RequiProId ReqPro) throws Exception;
	
	public void grabarRequiPro(RequiPro Registro) throws Exception;
	
	public void grabaconsecutivo(MngtdcId Registro,String numero) throws Exception;
	
	public void Imprimir(String Reporte) throws Exception;
	
	public RequiDocWork[] findRequisicionSelectedRow(List<RequiDoc> lista) throws Exception;
	
	public RequiProWork[] findRequisicionSelectedRowPro(List<RequiPro> lista,String bodega) throws Exception;
	
	public List<Producto> consultarProductosLike(String propiedad, String valor)
	throws Exception ;
	
	public List<RequiDoc> consultarRequiDocPropertyBodega(String clase, String tipo,
			String propiedad, String valor,String propiedadb, String valorb)throws Exception;
	
	public List<RequiDoc> consultarRequiDocPropertyCerradas_Bodega(String clase, String bodega,
			String propiedad, String valor) throws Exception ;
	
	public List<RequiDoc> consultarRequiDocPropertyCerradas_Bodega_Date(String clase, String bodega,
			String propiedad,Date valor) throws Exception ;
	
	
}
